home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / include / linux / resource.h < prev    next >
C/C++ Source or Header  |  2008-10-24  |  2KB  |  76 lines

  1. #ifndef _LINUX_RESOURCE_H
  2. #define _LINUX_RESOURCE_H
  3.  
  4. #include <linux/time.h>
  5.  
  6. struct task_struct;
  7.  
  8. /*
  9.  * Resource control/accounting header file for linux
  10.  */
  11.  
  12. /*
  13.  * Definition of struct rusage taken from BSD 4.3 Reno
  14.  * 
  15.  * We don't support all of these yet, but we might as well have them....
  16.  * Otherwise, each time we add new items, programs which depend on this
  17.  * structure will lose.  This reduces the chances of that happening.
  18.  */
  19. #define    RUSAGE_SELF    0
  20. #define    RUSAGE_CHILDREN    (-1)
  21. #define RUSAGE_BOTH    (-2)        /* sys_wait4() uses this */
  22. #define    RUSAGE_THREAD    1        /* only the calling thread */
  23.  
  24. struct    rusage {
  25.     struct timeval ru_utime;    /* user time used */
  26.     struct timeval ru_stime;    /* system time used */
  27.     long    ru_maxrss;        /* maximum resident set size */
  28.     long    ru_ixrss;        /* integral shared memory size */
  29.     long    ru_idrss;        /* integral unshared data size */
  30.     long    ru_isrss;        /* integral unshared stack size */
  31.     long    ru_minflt;        /* page reclaims */
  32.     long    ru_majflt;        /* page faults */
  33.     long    ru_nswap;        /* swaps */
  34.     long    ru_inblock;        /* block input operations */
  35.     long    ru_oublock;        /* block output operations */
  36.     long    ru_msgsnd;        /* messages sent */
  37.     long    ru_msgrcv;        /* messages received */
  38.     long    ru_nsignals;        /* signals received */
  39.     long    ru_nvcsw;        /* voluntary context switches */
  40.     long    ru_nivcsw;        /* involuntary " */
  41. };
  42.  
  43. struct rlimit {
  44.     unsigned long    rlim_cur;
  45.     unsigned long    rlim_max;
  46. };
  47.  
  48. #define    PRIO_MIN    (-20)
  49. #define    PRIO_MAX    20
  50.  
  51. #define    PRIO_PROCESS    0
  52. #define    PRIO_PGRP    1
  53. #define    PRIO_USER    2
  54.  
  55. /*
  56.  * Limit the stack by to some sane default: root can always
  57.  * increase this limit if needed..  8MB seems reasonable.
  58.  */
  59. #define _STK_LIM    (8*1024*1024)
  60.  
  61. /*
  62.  * GPG wants 32kB of mlocked memory, to make sure pass phrases
  63.  * and other sensitive information are never written to disk.
  64.  */
  65. #define MLOCK_LIMIT    (8 * PAGE_SIZE)
  66.  
  67. /*
  68.  * Due to binary compatibility, the actual resource numbers
  69.  * may be different for different linux versions..
  70.  */
  71. #include <asm/resource.h>
  72.  
  73. int getrusage(struct task_struct *p, int who, struct rusage *ru);
  74.  
  75. #endif
  76.